package sf.dsl.example;

import sf.database.dialect.DBDialect;
import sf.database.jdbc.sql.SQLParameter;

import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;

public interface IField {
    /**
     * 条件字段,忽略字段别名
     * @param sb
     * @param list
     * @param useDefaultTableNameAlias 是否使用默认的表名当作别名
     * @param useTablePrefix           是否需要使用表前缀--false,即使有表前缀,也忽略
     * @param dialect
     */
    void toConditionSql(StringBuilder sb, List<SQLParameter> list, AtomicBoolean useDefaultTableNameAlias, boolean useTablePrefix, DBDialect dialect);

    /**
     * 查询字段,需要加字段别名
     * @param sb
     * @param list
     * @param useDefaultTableNameAlias 使用表名当做别名
     * @param dialect
     */
    void toSelectSql(StringBuilder sb, List<SQLParameter> list, AtomicBoolean useDefaultTableNameAlias, DBDialect dialect);
}
